<template>
    <div :style="bg">
        <div style="padding: 10px">
            <!--    功能区域-->
            <!--    <div style="margin: 10px 0">-->
            <!--      <el-button type="primary" @click="add" v-if="user.role === 1">新增</el-button>-->

            <!--    </div>-->

            <!--    搜索区域-->
            <div style="margin: 10px 0">
                <el-input v-model="search" placeholder="请输入借阅人" style="width: 20%" clearable></el-input>
                <el-button type="primary" style="margin-left: 5px" @click="load">查询</el-button>
                <el-popconfirm
                        v-if="user.role === 1"
                        title="确定删除吗？"
                        @confirm="deleteBatch"
                >
                    <template #reference>
                        <el-button type="danger" >批量删除</el-button>
                    </template>
                </el-popconfirm>
            </div>

            <el-table
                    v-loading="loading"
                    :data="tableData"
                    border
                    stripe
                    style="width: 100%"
                    @selection-change="handleSelectionChange"
            >
                <el-table-column
                        type="selection"
                        width="55">
                </el-table-column>
                <el-table-column
                        prop="id"
                        label="ID"
                        width="150"
                        sortable>
                </el-table-column>
                <el-table-column
                        width="150"
                        prop="userName"
                        label="借阅人">
                </el-table-column>
                <el-table-column
                        width="200"
                        prop="bookName"
                        label="借阅书籍">
                </el-table-column>
                <el-table-column
                        width="200"
                        prop="borrowTime"
                        label="借阅时间">
                </el-table-column>
                <el-table-column
                        width="200"
                        prop="backTime"
                        label="归还时间">
                </el-table-column>
                <el-table-column label="借阅状态">
                    <template #default="scope">
                        <span v-if="scope.row.state === 0" style="color: orange">超过期限</span>
                        <span v-if="scope.row.state === 1" style="color: blue">借阅中</span>
                        <span v-if="scope.row.state === 2" style="color: green">已归还</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作" width="240">
                    <template #default="scope">
                        <el-button type="primary" size="mini" @click="handleBorrow(scope.row)">续借</el-button>
                        <el-button type="success" size="mini" @click="handleEdit(scope.row)">归还</el-button>
                        <el-popconfirm title="确定删除吗？" @confirm="handleDelete(scope.row.id)">
                            <template #reference>
                                <el-button size="mini" type="danger">删除</el-button>
                            </template>
                        </el-popconfirm>
                    </template>
                </el-table-column>
            </el-table>
            <el-dialog title="归还书籍" v-model="dialogVisible" width="30%" >
                <el-form :model="form" label-width="120px">
                    <el-form-item >
                        <el-input v-model="form.userId"   style="width: 80%;" type="hidden" ></el-input>
                    </el-form-item>
                    <el-form-item >
                        <el-input v-model="form.state"   style="width: 80%;" type="hidden" ></el-input>
                    </el-form-item>
                    <el-form-item  >
                        <el-input v-model="form.bookId" style="width: 80%" type="hidden" ></el-input>
                    </el-form-item>
                    <el-form-item label="名称" >
                        <el-input v-model="form.bookName"  style="width: 80%" disabled ></el-input>
                    </el-form-item>
                    <el-form-item label="借阅人">
                        <el-input v-model="form.userName" style="width: 80%" disabled></el-input>
                    </el-form-item>
                    <el-form-item label="借阅时间">
                        <el-date-picker  v-model="form.borrowTime" value-format="YYYY-MM-DD" type="date" style="width: 80%" clearable disabled ></el-date-picker>
                    </el-form-item>
                    <el-form-item label="归还时间">
                        <el-date-picker v-model="form.backTime" value-format="YYYY-MM-DD" type="date" style="width: 80%" clearable disabled ></el-date-picker>
                    </el-form-item>
                </el-form>
                <template #footer>
          <span class="dialog-footer">
            <el-button @click="dialogVisible = false">取 消</el-button>
            <el-button type="success" @click="changeState">归  还 </el-button>
          </span>
                </template>
            </el-dialog>
            <el-dialog title="续借" v-model="Borrow" width="30%" >
                <el-form :model="borrow" label-width="120px">
                    <el-form-item >
                        <el-input v-model="borrow.userId"   style="width: 80%;" type="hidden" ></el-input>
                    </el-form-item>
                    <el-form-item >
                        <el-input v-model="borrow.state"   style="width: 80%;" type="hidden" ></el-input>
                    </el-form-item>
                    <el-form-item  >
                        <el-input v-model="borrow.bookId" style="width: 80%" type="hidden" ></el-input>
                    </el-form-item>
                    <el-form-item label="名称" >
                        <el-input v-model="borrow.bookName"  style="width: 80%" disabled ></el-input>
                    </el-form-item>
                    <el-form-item label="借阅人">
                        <el-input v-model="borrow.userName" style="width: 80%" disabled></el-input>
                    </el-form-item>
                    <el-form-item label="借阅时间">
                        <el-date-picker  v-model="borrow.borrowTime" value-format="YYYY-MM-DD" type="date" style="width: 80%" clearable disabled ></el-date-picker>
                    </el-form-item>
                    <el-form-item label="归还时间">
                        <el-date-picker v-model="borrow.backTime" value-format="YYYY-MM-DD" type="date" style="width: 80%" clearable  ></el-date-picker>
                    </el-form-item>
                </el-form>
                <template #footer>
          <span class="dialog-footer">
            <el-button @click="Borrow = false">取 消</el-button>
            <el-button type="primary" @click="borrowNow">续  借 </el-button>
          </span>
                </template>
            </el-dialog>
            <div style="margin: 10px 0">
            </div>
        </div>
    </div>
</template>

<script>


    import request from "@/utils/request";

    export default {
        name: 'MyBorrow',
        components: {

        },
        data() {
            return {
                nowDate: "", // 当前日期
                bg: {
                    backgroundImage:'url(' + require('../assets/background.jpg') + ')',
                    backgroundRepeat: "no-repeat",
                    backgroundSize: "100% 100%"
                },
                user: {},
                loading: true,
                form: {},
                borrow:{},
                dialogVisible: false,
                Borrow: false,
                search: '',
                currentPage: 1,
                pageSize: 10,
                total: 0,
                tableData: [],
                ids: []
            }
        },
        created() {
            let userStr = sessionStorage.getItem("user") || "{}"
            this.user = JSON.parse(userStr)
            // 请求服务端，确认当前登录用户的 合法信息
            request.get("/user/" + this.user.id).then(res => {
                if (res.code === '0') {
                    this.user = res.data
                }
            })
            this.load()
        },
        methods: {
            load() {
                this.addDate();
                this.loading = true
                request.get("/borrow/" +this.user.id).then(res => {
                    this.loading = false
                    this.tableData = res.data
                })
                // if (this.form.id < this.systemDate){
                //     this.changeState();
                // }

            },
            borrowNow(){
                if (!this.borrow.backTime) {
                    this.$message.warning("请选择归还时间！")
                    return
                }
                if (this.borrow.backTime < this.borrow.borrowTime) {
                    this.$message.warning("归还时间不能小于借阅时间！")
                    return
                }
                request.post("/borrow", this.borrow).then(res => {
                    console.log(res)
                    if (res.code === '0') {
                        this.$message({
                            type: "success",
                            message: "续借成功"
                        })
                    } else {
                        this.$message({
                            type: "error",
                            message: res.msg
                        })
                    }
                    this.load() // 刷新表格的数据
                    this.Borrow = false  // 关闭弹窗
                })
            },
            changeState(){
                this.form.state = 2;
                request.put("/borrow", this.form).then(res => {
                    console.log(res)
                    if (res.code === '0') {
                        this.$message({
                            type: "success",
                            message: "借阅状态修改成功!"
                        })
                    } else {
                        this.$message({
                            type: "error",
                            message: res.msg
                        })
                    }
                    this.load() // 刷新表格的数据
                    this.dialogVisible = false  // 关闭弹窗
                })
            },
            addDate() {
                let nowDate = new Date();
                let date = {
                    year: nowDate.getFullYear(),
                    month: nowDate.getMonth() + 1,
                    date: nowDate.getDate(),
                }
                console.log(date);
                let systemDate = date.year + '-' + 0 + date.month + '-' + date.date;
                console.log(systemDate)
                return systemDate;
            },
            add() {
                this.dialogVisible = true
                this.form = {}
                if (this.$refs['upload']) {
                    this.$refs['upload'].clearFiles()  // 清除历史文件列表
                }
            },
            handleBorrow(row) {
                this.form = JSON.parse(JSON.stringify(row))
                this.Borrow = true
                this.borrow.state = this.form.state
                this.borrow.bookId = this.form.bookId
                this.borrow.userId = this.form.userId
                this.borrow.bookName =this.form.bookName
                this.borrow.userName = this.form.userName
                this.borrow.borrowTime = this.form.backTime

                this.$nextTick(() => {
                    if (this.$refs['upload']) {
                        this.$refs['upload'].clearFiles()  // 清除历史文件列表
                    }
                })

            },
            handleEdit(row) {
                this.form = JSON.parse(JSON.stringify(row))
                this.dialogVisible = true
                this.$nextTick(() => {
                    if (this.$refs['upload']) {
                        this.$refs['upload'].clearFiles()  // 清除历史文件列表
                    }
                })

            },
            save() {
                if (this.form.id) {  // 更新
                    request.put("/order", this.form).then(res => {
                        console.log(res)
                        if (res.code === '0') {
                            this.$message({
                                type: "success",
                                message: "更新成功"
                            })
                        } else {
                            this.$message({
                                type: "error",
                                message: res.msg
                            })
                        }
                        this.load() // 刷新表格的数据
                        this.dialogVisible = false  // 关闭弹窗
                    })
                }  else {  // 新增
                    request.post("/order", this.form).then(res => {
                        console.log(res)
                        if (res.code === '0') {
                            this.$message({
                                type: "success",
                                message: "新增成功"
                            })
                        } else {
                            this.$message({
                                type: "error",
                                message: res.msg
                            })
                        }

                        this.load() // 刷新表格的数据
                        this.dialogVisible = false  // 关闭弹窗
                    })
                }
            },
            deleteBatch() {
                if (!this.ids.length) {
                    this.$message.warning("请选择数据！")
                    return
                }
                request.post("/borrow/deleteBatch", this.ids).then(res => {
                    if (res.code === '0') {
                        this.$message.success("批量删除成功")
                        this.load()
                    } else {
                        this.$message.error(res.msg)
                    }
                })
            },
            handleDelete(id) {
                console.log(id)
                request.delete("/borrow/" + id).then(res => {
                    if (res.code === '0') {
                        this.$message({
                            type: "success",
                            message: "删除成功"
                        })
                    } else {
                        this.$message({
                            type: "error",
                            message: res.msg
                        })
                    }
                    this.load()  // 删除之后重新加载表格的数据
                })
            },
            handleSelectionChange(val) {
                this.ids = val.map(v => v.id)   // 实现数组的转换[{id,name}, {id,name}] => [id,id]
            },
            handleSizeChange(pageSize) {   // 改变当前每页的个数触发
                this.pageSize = pageSize
                this.load()
            },
            handleCurrentChange(pageNum) {  // 改变当前页码触发
                this.currentPage = pageNum
                this.load()
            }
        }
    }
</script>
